
Page({

  /**
   * 页面的初始数据
   */
  data: {
    myPublishList: [],//我的发布列表
    currentPage: 1,//当前页数
    isStop: false //是否停止加载
  },
  //跳转回收物详情页
  toRecyclablesInfo: function (e) {
    wx.navigateTo({
      url: '/pages/recyclablesInfo/recyclablesInfo?id=' + e.currentTarget.dataset.id,
    })
  },
  //获取我发布的回收物信息
  getMyPublish: function () {
    const that = this;
    //是否全部加载完毕，则停止加载
    if (that.data.isStop) {
      return;
    }
    let token = wx.getStorageSync('token');
    //当前页码
    let currentPage = that.data.currentPage;
    wx.request({
      url: getApp().globalData.api + "/get_my_publish",
      method: 'POST',
      header: {
        token
      },
      data: {
        currentPage
      },
      success(res) {
        if (res.data.code == 552 || res.data.code == 551) {//登录过期或token被清除
          wx.clearStorageSync();
          // 跳转登录页面
          wx.reLaunch({
            url: '/pages/login/login',
          })
          //提示登录过期
          wx.showToast({
            title: res.data.msg,
            icon: 'none',
            mask: true
          })
          return;
        }
        //没有上架的回收物
        if (res.data.code == 559) {
          return wx.showToast({
            title: res.data.msg,
            icon: 'none',
            mask: true
          })
        }
        if (res.data.code == 200) {
          //判断回收物是否加载到最后一页了，如果加载到最后一页了，就修改成禁止加载状态
          if (res.data.myPublish.current_page == res.data.myPublish.last_page) {
            that.setData({
              isStop: true
            })
          }
          //将新加载的数据添加到临时回收物列表里面
          that.data.myPublishList.push(...res.data.myPublish.data)
          let tmpMyPublishList;
          tmpMyPublishList = that.data.myPublishList;
          //更新视图，当前页码+1,刷新状态结束
          that.setData({
            myPublishList: tmpMyPublishList,
            currentPage: that.data.currentPage + 1,
            isRefresh: false
          })
        }
      }
    })
  },
  //下拉刷新我的发布
  refreshMyPublish: function () {
    //参数重置
    this.setData({
      isRefresh: true,
      currentPage: 1,
      myPublishList: [],
      isStop: false
    })
    this.getMyPublish()
  },
  //删除我发布的回收物
  delMyPublish: function (e) {
    const that = this;
    //二次确认删除
    wx.showModal({
      title: '删除',
      content: '删除后无法恢复',
      cancelText: '我再想想',
      confirmText: '删除',
      confirmColor: '#FF0000',
      complete: (res) => {
        let token = wx.getStorageSync('token');
        let recyclablesId = e.target.dataset.recyclablesId
        //确认删除
        if (res.confirm) {
          wx.showLoading({
            title: '正在删除',
            mask: true
          })
          // 发送删除请求
          wx.request({
            url: getApp().globalData.api + "/del_my_publish",
            method: 'POST',
            header: {
              token
            },
            data: {
              recyclablesId
            },
            success(res) {
              wx.hideLoading();
              if (res.data.code == 551 || res.data.code == 552) {//登录过期或token被清除
                wx.clearStorageSync();
                // 跳转登录页面
                wx.reLaunch({
                  url: '/pages/login/login',
                })
                //提示登录过期
                wx.showToast({
                  title: res.data.msg,
                  icon: 'none',
                  mask: true
                })
                return;
              }
              //要删除的回收物不存在，删除失败 数据库修改失败
              if (res.data.code == 558 || res.data.code == 557) {
                return wx.showToast({
                  title: res.data.msg,
                  icon: 'error',
                  mask: true
                })
              }
              //删除成功
              if (res.data.code == 200) {
                wx.showToast({
                  title: res.data.msg,
                  icon: 'success',
                  mask: true
                })
                //删除后，我的发布回收物列表进行更新
                that.delMyPublishList(recyclablesId);
              }
            },
            fail() {
              wx.hideLoading();
              //请求超时
              wx.showToast({
                title: '请求超时',
                icon: 'error',
                mask: true
              })
            }
          })
        }
      }
    })
  },
  //删除更新本地的我的发布的回收物列表
  delMyPublishList: function (recyclablesId) {
    let that = this;
    let myPublishList = that.data.myPublishList;
    //根据回收物id，找到对应的下标
    let index = myPublishList.findIndex(item => item.id === recyclablesId);
    //删除，更新视图
    if (index !== -1) {
      myPublishList.splice(index, 1);
      that.setData({
        myPublishList: myPublishList
      });
    }
  },
  //编辑我的发布
  editMyPublish: function (e) {
    const that = this;
    let token = wx.getStorageSync('token');
    let recyclablesId = e.target.dataset.recyclablesId;
    wx.request({
      url: getApp().globalData.api + "/edit_my_publish",
      method: 'POST',
      header: {
        token
      },
      data: {
        recyclablesId
      }, success(res) {
        if (res.data.code == 552 || res.data.code == 551) { //登录过期
          wx.removeStorageSync('token');
          // 跳转登录页面
          wx.reLaunch({
            url: '/pages/login/login',
          })
          //提示登录过期
          wx.showToast({
            title: res.data.msg,
            icon: 'none',
            mask: true
          })
        }
        if (res.data.code == 200) {

          wx.reLaunch({
            url: `/pages/publish/publish?recyclablesId=${res.data.Recyclables.id}&title=${res.data.Recyclables.title}&region=${res.data.Recyclables.region}&address=${res.data.Recyclables.address}&price=${res.data.Recyclables.price}&image=${res.data.Recyclables.image}`,
          })
        }

      }
    })
    return;



  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    //加载我发布的回收物信息
    this.getMyPublish();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})